package cl.loso.melon.server.action;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import cl.loso.melon.server.model.NegocioLVS;
import cl.loso.melon.server.model.SitioLVS;
import cl.loso.melon.server.negocio.NegocioLVSBO;
import cl.loso.melon.server.negocio.SitioLVSBO;
import cl.loso.melon.server.persistencia.SitioLVSDAO;

import com.opensymphony.xwork2.ActionSupport;

public class SitioLVSAction extends ActionSupport {
	private static Log log = LogFactory.getLog(ItemSVLAction.class);
	private static final long serialVersionUID = 1L;
	private String id;
	private String nombre;
	private String idNegocio;
	private SitioLVS sitioLVS;
	private List<SitioLVS> sitioList;
	private long idSitio;
	private NegocioLVS negocioLVS;
	private boolean existeVisita;
	private boolean existeSitio;

	public String obtenerSitio() {
		try {
			negocioLVS = NegocioLVSBO.editarNegocioLVS(idNegocio);
			sitioList = SitioLVSBO.obtenerSitioLVS(idNegocio);
		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String guardarSitio() {
		try {
			Date date = Calendar.getInstance().getTime();
			DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
			String today = formatter.format(date);
			if (SitioLVSBO.buscarNombre(nombre, idNegocio)) {
				SitioLVSBO.guardarSitioLVS(idNegocio, nombre, today);
				existeSitio = false;
			} else {
				existeSitio = true;
			}

		} catch (Exception e) {
			log.error(e);
		}

		return ActionSupport.SUCCESS;
	}

	public String borrarSitio() {
		try {
			if (!SitioLVSDAO.existeVisita(idNegocio, idSitio)) {
				SitioLVSBO.borrarSitioLVS(idNegocio, idSitio);
				existeVisita = false;
			} else {
				existeVisita = true;
			}
		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String editarSitio() {
		try {
			sitioLVS = SitioLVSBO.editarSitioLVS(idNegocio, id);
		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String actualizarSitio() {
		try {
			Date date = Calendar.getInstance().getTime();
			DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
			String today = formatter.format(date);

			SitioLVSBO.actualizarSitioLVS(idNegocio, id, nombre, today);

		} catch (Exception e) {
			log.error(e);
		}

		return ActionSupport.SUCCESS;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public SitioLVS getSitioLVS() {
		return sitioLVS;
	}

	public void setSitioLVS(SitioLVS sitioLVS) {
		this.sitioLVS = sitioLVS;
	}

	public List<SitioLVS> getSitioList() {
		return sitioList;
	}

	public void setSitioList(List<SitioLVS> sitioList) {
		this.sitioList = sitioList;
	}

	public String getIdNegocio() {
		return idNegocio;
	}

	public void setIdNegocio(String idNegocio) {
		this.idNegocio = idNegocio;
	}

	public long getIdSitio() {
		return idSitio;
	}

	public void setIdSitio(long idSitio) {
		this.idSitio = idSitio;
	}

	public NegocioLVS getNegocioLVS() {
		return negocioLVS;
	}

	public void setNegocioLVS(NegocioLVS negocioLVS) {
		this.negocioLVS = negocioLVS;
	}

	public boolean isExisteVisita() {
		return existeVisita;
	}

	public void setExisteVisita(boolean existeVisita) {
		this.existeVisita = existeVisita;
	}

	public boolean isExisteSitio() {
		return existeSitio;
	}

	public void setExisteSitio(boolean existeSitio) {
		this.existeSitio = existeSitio;
	}

}
